At the same time, drop the AtkText implementation.
Also, reintroduce a GtkBoxAccessible, since the previous
way of setting the role in get_accessible was affecting
GtkBox subclasses negatively.
Adjust expected test output to match.
gail.c \
gtkarrowaccessible.c \
gailbooleancell.c \
+ gtkboxaccessible.c \
gailbutton.c \
gailcell.c \
gailcellparent.c \
gailcontainer.c \
gailcontainercell.c \
gtkentryaccessible.c \
- gailexpander.c \
+ gtkexpanderaccessible.c \
gtkframeaccessible.c \
gtkimageaccessible.c \
gailimagecell.c \
gail_private_h_sources = \
gtkarrowaccessible.h \
gailbooleancell.h \
+ gtkboxaccessible.h \
gailbutton.h \
gailcell.h \
gailcellparent.h \
gailcontainercell.h \
gailcontainer.h \
gtkentryaccessible.h \
- gailexpander.h \
+ gtkexpanderaccessible.h \
gailfactory.h \
gtkframeaccessible.h \
gtkimageaccessible.h \
#include "gailcheckmenuitem.h"
#include "gailcontainer.h"
#include "gailcontainercell.h"
-#include "gailexpander.h"
#include "gailimagecell.h"
#include "gailmenu.h"
#include "gailmenushell.h"
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_WINDOW, GailWindow, gail_window, GTK_TYPE_BIN)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItem, gail_check_menu_item, gail_check_menu_item_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItem, gail_radio_menu_item, gail_radio_menu_item_new)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_EXPANDER, GailExpander, gail_expander, GTK_TYPE_EXPANDER)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_RENDERER_CELL, GailRendererCell, gail_renderer_cell, GTK_TYPE_CELL_RENDERER, gail_renderer_cell_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_BOOLEAN_CELL, GailBooleanCell, gail_boolean_cell, GTK_TYPE_CELL_RENDERER_TOGGLE, gail_boolean_cell_new)
GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_IMAGE_CELL, GailImageCell, gail_image_cell, GTK_TYPE_CELL_RENDERER_PIXBUF, gail_image_cell_new)
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER, gail_renderer_cell);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CHECK_MENU_ITEM, gail_check_menu_item);
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_RADIO_MENU_ITEM, gail_radio_menu_item);
- GAIL_WIDGET_SET_FACTORY (GTK_TYPE_EXPANDER, gail_expander);
atk_focus_tracker_init (gail_focus_tracker_init);
focus_tracker_id = atk_add_focus_tracker (gail_focus_tracker);
+++ /dev/null
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include "gailexpander.h"
-
-static void gail_expander_class_init (GailExpanderClass *klass);
-static void gail_expander_init (GailExpander *expander);
-
-static const gchar* gail_expander_get_name (AtkObject *obj);
-static gint gail_expander_get_n_children (AtkObject *obj)
-;
-static AtkObject* gail_expander_ref_child (AtkObject *obj,
- gint i);
-
-static AtkStateSet* gail_expander_ref_state_set (AtkObject *obj);
-static void gail_expander_real_notify_gtk (GObject *obj,
- GParamSpec *pspec);
-static void gail_expander_map_gtk (GtkWidget *widget,
- gpointer data);
-
-static void gail_expander_real_initialize (AtkObject *obj,
- gpointer data);
-static void gail_expander_finalize (GObject *object);
-static void gail_expander_init_textutil (GailExpander *expander,
- GtkExpander *widget);
-static const gchar* gail_expander_get_full_text (GtkExpander *widget);
-
-static void atk_action_interface_init (AtkActionIface *iface);
-static gboolean gail_expander_do_action (AtkAction *action,
- gint i);
-static gint gail_expander_get_n_actions(AtkAction *action);
-static const gchar* gail_expander_get_keybinding
- (AtkAction *action,
- gint i);
-static const gchar* gail_expander_action_get_name
- (AtkAction *action,
- gint i);
-
-G_DEFINE_TYPE_WITH_CODE (GailExpander, gail_expander, GAIL_TYPE_CONTAINER,
- G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
-
-static void
-gail_expander_class_init (GailExpanderClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
- GailWidgetClass *widget_class;
-
- widget_class = (GailWidgetClass*)klass;
- widget_class->notify_gtk = gail_expander_real_notify_gtk;
-
- gobject_class->finalize = gail_expander_finalize;
-
- class->get_name = gail_expander_get_name;
- class->get_n_children = gail_expander_get_n_children;
- class->ref_child = gail_expander_ref_child;
- class->ref_state_set = gail_expander_ref_state_set;
-
- class->initialize = gail_expander_real_initialize;
-}
-
-static void
-gail_expander_init (GailExpander *expander)
-{
- expander->activate_keybinding = NULL;
- expander->textutil = NULL;
-}
-
-static const gchar*
-gail_expander_get_name (AtkObject *obj)
-{
- const gchar *name;
- g_return_val_if_fail (GAIL_IS_EXPANDER (obj), NULL);
-
- name = ATK_OBJECT_CLASS (gail_expander_parent_class)->get_name (obj);
- if (name != NULL)
- return name;
- else
- {
- /*
- * Get the text on the label
- */
- GtkWidget *widget;
-
- widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
- if (widget == NULL)
- /*
- * State is defunct
- */
- return NULL;
-
- g_return_val_if_fail (GTK_IS_EXPANDER (widget), NULL);
-
- return gail_expander_get_full_text (GTK_EXPANDER (widget));
- }
-}
-
-static gint
-gail_expander_get_n_children (AtkObject* obj)
-{
- GtkWidget *widget;
- GList *children;
- gint count = 0;
-
- g_return_val_if_fail (GAIL_IS_CONTAINER (obj), count);
-
- widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
- if (widget == NULL)
- return 0;
-
- children = gtk_container_get_children (GTK_CONTAINER(widget));
- count = g_list_length (children);
- g_list_free (children);
-
- /* See if there is a label - if there is, reduce our count by 1
- * since we don't want the label included with the children.
- */
- if (gtk_expander_get_label_widget (GTK_EXPANDER (widget)))
- count -= 1;
-
- return count;
-}
-
-static AtkObject*
-gail_expander_ref_child (AtkObject *obj,
- gint i)
-{
- GList *children, *tmp_list;
- AtkObject *accessible;
- GtkWidget *widget;
- GtkWidget *label;
- gint index;
-
- g_return_val_if_fail (GAIL_IS_CONTAINER (obj), NULL);
- g_return_val_if_fail ((i >= 0), NULL);
-
- widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
- if (widget == NULL)
- return NULL;
-
- children = gtk_container_get_children (GTK_CONTAINER (widget));
-
- /* See if there is a label - if there is, we need to skip it
- * since we don't want the label included with the children.
- */
- label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
- if (label) {
- for (index = 0; index <= i; index++) {
- tmp_list = g_list_nth (children, index);
- if (label == GTK_WIDGET (tmp_list->data)) {
- i += 1;
- break;
- }
- }
- }
-
- tmp_list = g_list_nth (children, i);
- if (!tmp_list)
- {
- g_list_free (children);
- return NULL;
- }
- accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
-
- g_list_free (children);
- g_object_ref (accessible);
- return accessible;
-}
-
-static void
-gail_expander_real_initialize (AtkObject *obj,
- gpointer data)
-{
- GailExpander *gail_expander = GAIL_EXPANDER (obj);
- GtkWidget *expander;
-
- ATK_OBJECT_CLASS (gail_expander_parent_class)->initialize (obj, data);
-
- expander = GTK_WIDGET (data);
- if (gtk_widget_get_mapped (expander))
- gail_expander_init_textutil (gail_expander, GTK_EXPANDER (expander));
- else
- g_signal_connect (expander,
- "map",
- G_CALLBACK (gail_expander_map_gtk),
- gail_expander);
-
- obj->role = ATK_ROLE_TOGGLE_BUTTON;
-}
-
-static void
-gail_expander_map_gtk (GtkWidget *widget,
- gpointer data)
-{
- GailExpander *expander;
-
- expander = GAIL_EXPANDER (data);
- gail_expander_init_textutil (expander, GTK_EXPANDER (widget));
-}
-
-static void
-gail_expander_real_notify_gtk (GObject *obj,
- GParamSpec *pspec)
-{
- AtkObject* atk_obj;
- GtkExpander *expander;
- GailExpander *gail_expander;
-
- expander = GTK_EXPANDER (obj);
- atk_obj = gtk_widget_get_accessible (GTK_WIDGET (expander));
-;
- if (strcmp (pspec->name, "label") == 0)
- {
- const gchar* label_text;
-
-
- label_text = gail_expander_get_full_text (expander);
-
- gail_expander = GAIL_EXPANDER (atk_obj);
- if (gail_expander->textutil)
- gail_text_util_text_setup (gail_expander->textutil, label_text);
-
- if (atk_obj->name == NULL)
- {
- /*
- * The label has changed so notify a change in accessible-name
- */
- g_object_notify (G_OBJECT (atk_obj), "accessible-name");
- }
- /*
- * The label is the only property which can be changed
- */
- g_signal_emit_by_name (atk_obj, "visible_data_changed");
- }
- else if (strcmp (pspec->name, "expanded") == 0)
- {
- atk_object_notify_state_change (atk_obj, ATK_STATE_CHECKED,
- gtk_expander_get_expanded (expander));
- atk_object_notify_state_change (atk_obj, ATK_STATE_EXPANDED,
- gtk_expander_get_expanded (expander));
- g_signal_emit_by_name (atk_obj, "visible_data_changed");
- }
- else
- GAIL_WIDGET_CLASS (gail_expander_parent_class)->notify_gtk (obj, pspec);
-}
-
-static const gchar*
-gail_expander_get_full_text (GtkExpander *widget)
-{
- GtkWidget *label_widget;
-
- label_widget = gtk_expander_get_label_widget (widget);
-
- if (!GTK_IS_LABEL (label_widget))
- return NULL;
-
- return gtk_label_get_text (GTK_LABEL (label_widget));
-}
-
-static void
-gail_expander_init_textutil (GailExpander *expander,
- GtkExpander *widget)
-{
- const gchar *label_text;
-
- expander->textutil = gail_text_util_new ();
- label_text = gail_expander_get_full_text (widget);
- gail_text_util_text_setup (expander->textutil, label_text);
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
- iface->do_action = gail_expander_do_action;
- iface->get_n_actions = gail_expander_get_n_actions;
- iface->get_keybinding = gail_expander_get_keybinding;
- iface->get_name = gail_expander_action_get_name;
-}
-
-static gboolean
-gail_expander_do_action (AtkAction *action,
- gint i)
-{
- GtkWidget *widget;
- gboolean return_value = TRUE;
-
- widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
- if (widget == NULL)
- /*
- * State is defunct
- */
- return FALSE;
-
- if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
- return FALSE;
-
- switch (i)
- {
- case 0:
- gtk_widget_activate (widget);
- break;
- default:
- return_value = FALSE;
- break;
- }
- return return_value;
-}
-
-static gint
-gail_expander_get_n_actions (AtkAction *action)
-{
- return 1;
-}
-
-static const gchar*
-gail_expander_get_keybinding (AtkAction *action,
- gint i)
-{
- GailExpander *expander;
- gchar *return_value = NULL;
-
- switch (i)
- {
- case 0:
- {
- /*
- * We look for a mnemonic on the label
- */
- GtkWidget *widget;
- GtkWidget *label;
-
- expander = GAIL_EXPANDER (action);
- widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (expander));
- if (widget == NULL)
- /*
- * State is defunct
- */
- return NULL;
-
- g_return_val_if_fail (GTK_IS_EXPANDER (widget), NULL);
-
- label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
- if (GTK_IS_LABEL (label))
- {
- guint key_val;
-
- key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
- if (key_val != GDK_KEY_VoidSymbol)
- return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
- g_free (expander->activate_keybinding);
- expander->activate_keybinding = return_value;
- }
- break;
- }
- default:
- break;
- }
- return return_value;
-}
-
-static const gchar*
-gail_expander_action_get_name (AtkAction *action,
- gint i)
-{
- const gchar *return_value;
-
- switch (i)
- {
- case 0:
- return_value = "activate";
- break;
- default:
- return_value = NULL;
- break;
- }
- return return_value;
-}
-
-static AtkStateSet*
-gail_expander_ref_state_set (AtkObject *obj)
-{
- AtkStateSet *state_set;
- GtkWidget *widget;
- GtkExpander *expander;
-
- state_set = ATK_OBJECT_CLASS (gail_expander_parent_class)->ref_state_set (obj);
- widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
- if (widget == NULL)
- return state_set;
-
- expander = GTK_EXPANDER (widget);
-
- atk_state_set_add_state (state_set, ATK_STATE_EXPANDABLE);
-
- if (gtk_expander_get_expanded (expander)) {
- atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
- atk_state_set_add_state (state_set, ATK_STATE_EXPANDED);
- }
-
- return state_set;
-}
-
-static void
-gail_expander_finalize (GObject *object)
-{
- GailExpander *expander = GAIL_EXPANDER (object);
-
- g_free (expander->activate_keybinding);
- if (expander->textutil)
- g_object_unref (expander->textutil);
-
- G_OBJECT_CLASS (gail_expander_parent_class)->finalize (object);
-}
+++ /dev/null
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_EXPANDER_H__
-#define __GAIL_EXPANDER_H__
-
-#include "gailcontainer.h"
-#include "gailtextutil.h"
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_EXPANDER (gail_expander_get_type ())
-#define GAIL_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_EXPANDER, GailExpander))
-#define GAIL_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_EXPANDER, GailExpanderClass))
-#define GAIL_IS_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_EXPANDER))
-#define GAIL_IS_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_EXPANDER))
-#define GAIL_EXPANDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_EXPANDER, GailExpanderClass))
-
-typedef struct _GailExpander GailExpander;
-typedef struct _GailExpanderClass GailExpanderClass;
-
-struct _GailExpander
-{
- GailContainer parent;
-
- gchar *activate_keybinding;
-
- GailTextUtil *textutil;
-};
-
-GType gail_expander_get_type (void);
-
-struct _GailExpanderClass
-{
- GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_EXPANDER_H__ */
--- /dev/null
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkboxaccessible.h"
+
+G_DEFINE_TYPE (GtkBoxAccessible, gtk_box_accessible, GAIL_TYPE_CONTAINER)
+
+static void
+gtk_box_accessible_initialize (AtkObject *accessible,
+ gpointer data)
+{
+ ATK_OBJECT_CLASS (gtk_box_accessible_parent_class)->initialize (accessible, data);
+ accessible->role = ATK_ROLE_FILLER;
+}
+
+static void
+gtk_box_accessible_class_init (GtkBoxAccessibleClass *klass)
+{
+ AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+ class->initialize = gtk_box_accessible_initialize;
+}
+
+static void
+gtk_box_accessible_init (GtkBoxAccessible *scale)
+{
+}
--- /dev/null
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_BOX_ACCESSIBLE_H__
+#define __GTK_BOX_ACCESSIBLE_H__
+
+#include "gailcontainer.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_BOX_ACCESSIBLE (gtk_box_accessible_get_type ())
+#define GTK_BOX_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessible))
+#define GTK_BOX_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessibleClass))
+#define GTK_IS_BOX_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_BOX_ACCESSIBLE))
+#define GTK_IS_BOX_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_BOX_ACCESSIBLE))
+#define GTK_BOX_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessibleClass))
+
+typedef struct _GtkBoxAccessible GtkBoxAccessible;
+typedef struct _GtkBoxAccessibleClass GtkBoxAccessibleClass;
+
+struct _GtkBoxAccessible
+{
+ GailContainer parent;
+};
+
+struct _GtkBoxAccessibleClass
+{
+ GailContainerClass parent_class;
+};
+
+GType gtk_box_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_BOX_ACCESSIBLE_H__ */
--- /dev/null
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+#include "gtkexpanderaccessible.h"
+
+static void atk_action_interface_init (AtkActionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkExpanderAccessible, gtk_expander_accessible, GAIL_TYPE_CONTAINER,
+ G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+
+static const gchar *
+gtk_expander_accessible_get_full_text (GtkExpander *widget)
+{
+ GtkWidget *label_widget;
+
+ label_widget = gtk_expander_get_label_widget (widget);
+
+ if (!GTK_IS_LABEL (label_widget))
+ return NULL;
+
+ return gtk_label_get_text (GTK_LABEL (label_widget));
+}
+
+static const gchar *
+gtk_expander_accessible_get_name (AtkObject *obj)
+{
+ GtkWidget *widget;
+ const gchar *name;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return NULL;
+
+ name = ATK_OBJECT_CLASS (gtk_expander_accessible_parent_class)->get_name (obj);
+ if (name != NULL)
+ return name;
+
+ return gtk_expander_accessible_get_full_text (GTK_EXPANDER (widget));
+}
+
+static gint
+gtk_expander_accessible_get_n_children (AtkObject *obj)
+{
+ GtkWidget *widget;
+ GList *children;
+ gint count = 0;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return 0;
+
+ children = gtk_container_get_children (GTK_CONTAINER(widget));
+ count = g_list_length (children);
+ g_list_free (children);
+
+ /* See if there is a label - if there is, reduce our count by 1
+ * since we don't want the label included with the children.
+ */
+ if (gtk_expander_get_label_widget (GTK_EXPANDER (widget)))
+ count -= 1;
+
+ return count;
+}
+
+static AtkObject *
+gtk_expander_accessible_ref_child (AtkObject *obj,
+ gint i)
+{
+ GList *children, *tmp_list;
+ AtkObject *accessible;
+ GtkWidget *widget;
+ GtkWidget *label;
+ gint index;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return NULL;
+
+ children = gtk_container_get_children (GTK_CONTAINER (widget));
+
+ /* See if there is a label - if there is, we need to skip it
+ * since we don't want the label included with the children.
+ */
+ label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
+ if (label)
+ {
+ for (index = 0; index <= i; index++)
+ {
+ tmp_list = g_list_nth (children, index);
+ if (label == GTK_WIDGET (tmp_list->data))
+ {
+ i += 1;
+ break;
+ }
+ }
+ }
+
+ tmp_list = g_list_nth (children, i);
+ if (!tmp_list)
+ {
+ g_list_free (children);
+ return NULL;
+ }
+ accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
+
+ g_list_free (children);
+ g_object_ref (accessible);
+ return accessible;
+}
+
+static void
+gtk_expander_accessible_initialize (AtkObject *obj,
+ gpointer data)
+{
+ ATK_OBJECT_CLASS (gtk_expander_accessible_parent_class)->initialize (obj, data);
+
+ obj->role = ATK_ROLE_TOGGLE_BUTTON;
+}
+
+static void
+gtk_expander_accessible_notify_gtk (GObject *obj,
+ GParamSpec *pspec)
+{
+ AtkObject* atk_obj;
+ GtkExpander *expander;
+
+ expander = GTK_EXPANDER (obj);
+ atk_obj = gtk_widget_get_accessible (GTK_WIDGET (expander));
+;
+ if (strcmp (pspec->name, "label") == 0)
+ {
+ if (atk_obj->name == NULL)
+ g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+ g_signal_emit_by_name (atk_obj, "visible_data_changed");
+ }
+ else if (strcmp (pspec->name, "expanded") == 0)
+ {
+ atk_object_notify_state_change (atk_obj, ATK_STATE_CHECKED,
+ gtk_expander_get_expanded (expander));
+ atk_object_notify_state_change (atk_obj, ATK_STATE_EXPANDED,
+ gtk_expander_get_expanded (expander));
+ g_signal_emit_by_name (atk_obj, "visible_data_changed");
+ }
+ else
+ GAIL_WIDGET_CLASS (gtk_expander_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static AtkStateSet*
+gtk_expander_accessible_ref_state_set (AtkObject *obj)
+{
+ AtkStateSet *state_set;
+ GtkWidget *widget;
+ GtkExpander *expander;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return NULL;
+
+ state_set = ATK_OBJECT_CLASS (gtk_expander_accessible_parent_class)->ref_state_set (obj);
+
+ expander = GTK_EXPANDER (widget);
+
+ atk_state_set_add_state (state_set, ATK_STATE_EXPANDABLE);
+
+ if (gtk_expander_get_expanded (expander))
+ {
+ atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
+ atk_state_set_add_state (state_set, ATK_STATE_EXPANDED);
+ }
+
+ return state_set;
+}
+
+static void
+gtk_expander_accessible_class_init (GtkExpanderAccessibleClass *klass)
+{
+ AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+ GailWidgetClass *widget_class = (GailWidgetClass*)klass;
+
+ widget_class->notify_gtk = gtk_expander_accessible_notify_gtk;
+
+ class->get_name = gtk_expander_accessible_get_name;
+ class->get_n_children = gtk_expander_accessible_get_n_children;
+ class->ref_child = gtk_expander_accessible_ref_child;
+ class->ref_state_set = gtk_expander_accessible_ref_state_set;
+
+ class->initialize = gtk_expander_accessible_initialize;
+}
+
+static void
+gtk_expander_accessible_init (GtkExpanderAccessible *expander)
+{
+}
+
+static gboolean
+gtk_expander_accessible_do_action (AtkAction *action,
+ gint i)
+{
+ GtkWidget *widget;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+ if (widget == NULL)
+ return FALSE;
+
+ if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+ return FALSE;
+
+ if (i != 0)
+ return FALSE;
+
+ gtk_widget_activate (widget);
+ return TRUE;
+}
+
+static gint
+gtk_expander_accessible_get_n_actions (AtkAction *action)
+{
+ return 1;
+}
+
+static const gchar *
+gtk_expander_accessible_get_keybinding (AtkAction *action,
+ gint i)
+{
+ GtkExpanderAccessible *expander;
+ gchar *return_value = NULL;
+ GtkWidget *widget;
+ GtkWidget *label;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+ if (widget == NULL)
+ return NULL;
+
+ if (i != 0)
+ return NULL;
+
+ expander = GTK_EXPANDER_ACCESSIBLE (action);
+
+ label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
+ if (GTK_IS_LABEL (label))
+ {
+ guint key_val;
+
+ key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+ if (key_val != GDK_KEY_VoidSymbol)
+ return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+ }
+
+ return return_value;
+}
+
+static const gchar *
+gtk_expander_accessible_action_get_name (AtkAction *action,
+ gint i)
+{
+ if (i != 0)
+ return NULL;
+
+ return "activate";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+ iface->do_action = gtk_expander_accessible_do_action;
+ iface->get_n_actions = gtk_expander_accessible_get_n_actions;
+ iface->get_keybinding = gtk_expander_accessible_get_keybinding;
+ iface->get_name = gtk_expander_accessible_action_get_name;
+}
--- /dev/null
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_EXPANDER_ACCESSIBLE_H__
+#define __GTK_EXPANDER_ACCESSIBLE_H__
+
+#include "gailcontainer.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_EXPANDER_ACCESSIBLE (gtk_expander_accessible_get_type ())
+#define GTK_EXPANDER_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessible))
+#define GTK_EXPANDER_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessibleClass))
+#define GTK_IS_EXPANDER_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE))
+#define GTK_IS_EXPANDER_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_EXPANDER_ACCESSIBLE))
+#define GTK_EXPANDER_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessibleClass))
+
+typedef struct _GtkExpanderAccessible GtkExpanderAccessible;
+typedef struct _GtkExpanderAccessibleClass GtkExpanderAccessibleClass;
+
+struct _GtkExpanderAccessible
+{
+ GailContainer parent;
+};
+
+struct _GtkExpanderAccessibleClass
+{
+ GailContainerClass parent_class;
+};
+
+GType gtk_expander_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_EXPANDER_ACCESSIBLE_H__ */
#include "gtkstatusbaraccessible.h"
-G_DEFINE_TYPE (GtkStatusbarAccessible, gtk_statusbar_accessible, GAIL_TYPE_CONTAINER)
+G_DEFINE_TYPE (GtkStatusbarAccessible, gtk_statusbar_accessible, GTK_TYPE_BOX_ACCESSIBLE)
static void
text_changed (GtkStatusbar *statusbar,
#ifndef __GTK_STATUSBAR_ACCESSIBLE_H__
#define __GTK_STATUSBAR_ACCESSIBLE_H__
-#include "gailcontainer.h"
-#include "gailtextutil.h"
+#include "gtkboxaccessible.h"
G_BEGIN_DECLS
struct _GtkStatusbarAccessible
{
- GailContainer parent;
+ GtkBoxAccessible parent;
};
struct _GtkStatusbarAccessibleClass
{
- GailContainerClass parent_class;
+ GtkBoxAccessibleClass parent_class;
};
GType gtk_statusbar_accessible_get_type (void);
#include "gtktypebuiltins.h"
#include "gtkprivate.h"
#include "gtkintl.h"
+#include "a11y/gtkboxaccessible.h"
enum {
gint *minimum_height,
gint *natural_height);
-static AtkObject *gtk_box_get_accessible (GtkWidget *widget);
-
G_DEFINE_TYPE_WITH_CODE (GtkBox, gtk_box, GTK_TYPE_CONTAINER,
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE,
widget_class->get_preferred_width_for_height = gtk_box_get_preferred_width_for_height;
widget_class->compute_expand = gtk_box_compute_expand;
widget_class->direction_changed = gtk_box_direction_changed;
- widget_class->get_accessible = gtk_box_get_accessible;
container_class->add = gtk_box_add;
container_class->remove = gtk_box_remove;
GTK_PARAM_READWRITE));
g_type_class_add_private (object_class, sizeof (GtkBoxPrivate));
+
+ gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_BOX_ACCESSIBLE);
}
static void
gtk_box_compute_size_for_orientation (box, width, minimum_height, natural_height);
}
-static AtkObject *
-gtk_box_get_accessible (GtkWidget *widget)
-{
- AtkObject *obj;
-
- obj = GTK_WIDGET_CLASS (gtk_box_parent_class)->get_accessible (widget);
-
- if (atk_object_get_role (obj) == ATK_ROLE_UNKNOWN)
- atk_object_set_role (obj, ATK_ROLE_FILLER);
-
- return obj;
-}
-
/**
* gtk_box_new:
* @orientation: the box's orientation.
#include "gtkintl.h"
#include "gtkprivate.h"
#include "gtkdnd.h"
+#include "a11y/gtkexpanderaccessible.h"
#define DEFAULT_EXPANDER_SIZE 10
NULL, NULL,
_gtk_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+
+ gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_EXPANDER_ACCESSIBLE);
}
static void
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
+ unnamed-GtkBoxAccessible-1
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
alpha: 1
unnamed-GtkImageAccessible-2
"icon"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
state: enabled sensitive showing visible
toolkit: gail
image description: (null)
FancyPants
"label"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 1
name: FancyPants
state: enabled focusable multi-line sensitive showing visible
wrap-mode: word
unnamed-GtkNotebookAccessible-3
"page tab list"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 2
state: enabled sensitive showing visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-5
+ unnamed-GtkBoxAccessible-5
"filler"
index: 0
state: enabled sensitive showing vertical visible
alpha: 1
0.99
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 0
name: 0.99
state: enabled focusable multi-line sensitive showing visible
wrap-mode: word
comments
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 1
name: comments
state: enabled focusable multi-line sensitive showing visible
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-6
+ unnamed-GtkBoxAccessible-6
"filler"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 2
state: enabled horizontal sensitive showing visible
toolkit: gail
alpha: 1
Homepage
"label"
- parent: unnamed-GailContainer-6
+ parent: unnamed-GtkBoxAccessible-6
index: 0
name: Homepage
state: enabled focusable multi-line sensitive showing visible
wrap-mode: word
no comments
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 3
name: no comments
state: enabled focusable multi-line sensitive showing visible
wrap-mode: word
This program comes with ABSOLUTELY NO WARRANTY; for details, visit http://www.gnu.org/licenses/gpl.html
"label"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 4
name: This program comes with ABSOLUTELY NO WARRANTY; for details, visit http://www.gnu.org/licenses/gpl.html
state: enabled focusable multi-line sensitive showing visible
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-7
+ unnamed-GtkBoxAccessible-7
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
alpha: 1
License
"toggle button"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 0
name: License
state: enabled focusable sensitive
action 0 keybinding: <Alt>l
Credits
"toggle button"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 1
name: Credits
state: enabled focusable sensitive
action 0 keybinding: <Alt>r
Close
"push button"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 2
name: Close
state: enabled focusable sensitive showing visible default
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
+ unnamed-GtkBoxAccessible-1
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-2
+ unnamed-GtkBoxAccessible-2
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
alpha: 1
Select an application for "(null)" files
"label"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 0
name: Select an application for "(null)" files
state: enabled multi-line sensitive showing visible
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-3
+ unnamed-GtkBoxAccessible-3
"filler"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 1
state: enabled sensitive showing vertical visible
toolkit: gail
alpha: 1
unnamed-GtkScrolledWindowAccessible-4
"scroll pane"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 0
state: enabled focusable sensitive showing visible
toolkit: gail
minimum increment: 29.800000
Show other applications
"push button"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 1
name: Show other applications
state: enabled focusable sensitive showing visible
image description: (null)
<AtkAction>
action 0 name: click
- unnamed-GailContainer-10
+ unnamed-GtkBoxAccessible-10
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
alpha: 1
Select
"push button"
- parent: unnamed-GailContainer-10
+ parent: unnamed-GtkBoxAccessible-10
index: 0
name: Select
state: enabled focusable sensitive showing visible default
action 0 keybinding: <Alt>s
Cancel
"push button"
- parent: unnamed-GailContainer-10
+ parent: unnamed-GtkBoxAccessible-10
index: 1
name: Cancel
state: enabled focusable sensitive showing visible
image description: (null)
<AtkAction>
action 0 name: click
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
alpha: 1
Close
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
name: Close
state: enabled focusable sensitive
action 0 keybinding: <Alt>c
Cancel
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
name: Cancel
state: enabled focusable sensitive showing visible
action 0 keybinding: <Alt>c
Finish
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 2
name: Finish
state: focusable
action 0 keybinding: <Alt>f
Go Back
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 3
name: Go Back
state: enabled focusable sensitive
action 0 keybinding: <Alt>b
Continue
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 4
name: Continue
state: focusable showing visible
action 0 keybinding: <Alt>o
Apply
"push button"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 5
name: Apply
state: enabled focusable sensitive
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
- "filler"
- parent: unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-1
+ "color chooser"
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-2
+ unnamed-GtkBoxAccessible-2
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-3
+ unnamed-GtkBoxAccessible-3
"filler"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 0
state: enabled sensitive showing vertical visible
toolkit: gail
alpha: 1
unnamed-GailWidget-4
"color chooser"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 0
name: Color Wheel
description: Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle.
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-5
+ unnamed-GtkBoxAccessible-5
"filler"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
alpha: 1
unnamed-GtkFrameAccessible-6
"panel"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 0
state: enabled sensitive showing visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-7
+ unnamed-GtkBoxAccessible-7
"filler"
parent: unnamed-GtkFrameAccessible-6
index: 0
alpha: 1
unnamed-GailWidget-8
"unknown"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 0
description: The previously-selected color, for comparison to the color you're selecting now.
state: enabled sensitive showing visible
alpha: 1
unnamed-GailWidget-9
"unknown"
- parent: unnamed-GailContainer-7
+ parent: unnamed-GtkBoxAccessible-7
index: 1
description: The color you've chosen.
state: enabled sensitive showing visible
alpha: 1
unnamed-GailButton-10
"push button"
- parent: unnamed-GailContainer-5
+ parent: unnamed-GtkBoxAccessible-5
index: 1
description: Click the eyedropper, then click a color anywhere on your screen to select that color.
state: enabled focusable sensitive showing visible
image description: (null)
<AtkAction>
action 0 name: click
- unnamed-GailContainer-11
+ unnamed-GtkBoxAccessible-11
"filler"
- parent: unnamed-GailContainer-2
+ parent: unnamed-GtkBoxAccessible-2
index: 1
state: enabled sensitive showing vertical visible
toolkit: gail
alpha: 1
unnamed-GailContainer-12
"panel"
- parent: unnamed-GailContainer-11
+ parent: unnamed-GtkBoxAccessible-11
index: 0
state: enabled sensitive showing visible
toolkit: gail
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-15
+ unnamed-GtkBoxAccessible-15
"filler"
- parent: unnamed-GailContainer-11
+ parent: unnamed-GtkBoxAccessible-11
index: 1
state: enabled sensitive vertical
toolkit: gail
alpha: 1
Palette:
"label"
- parent: unnamed-GailContainer-15
+ parent: unnamed-GtkBoxAccessible-15
index: 0
name: Palette:
label-for: unnamed-GailWidget-16
wrap-mode: word
unnamed-GailContainer-17
"panel"
- parent: unnamed-GailContainer-15
+ parent: unnamed-GtkBoxAccessible-15
index: 1
state: enabled sensitive visible
toolkit: gail
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-57
+ unnamed-GtkBoxAccessible-57
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
alpha: 1
Help
"push button"
- parent: unnamed-GailContainer-57
+ parent: unnamed-GtkBoxAccessible-57
index: 0
name: Help
state: enabled focusable sensitive
action 0 keybinding: <Alt>h
OK
"push button"
- parent: unnamed-GailContainer-57
+ parent: unnamed-GtkBoxAccessible-57
index: 1
name: OK
state: enabled focusable sensitive showing visible default
action 0 keybinding: <Alt>o
Cancel
"push button"
- parent: unnamed-GailContainer-57
+ parent: unnamed-GtkBoxAccessible-57
index: 2
name: Cancel
state: enabled focusable sensitive showing visible
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: bar1
index: 1
<AtkComponent>
layer: window
alpha: 1
- unnamed-GailContainer-0
+ unnamed-GtkBoxAccessible-0
"filler"
parent: window1
index: 0
<AtkComponent>
layer: widget
alpha: 1
- unnamed-GailContainer-1
+ unnamed-GtkBoxAccessible-1
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gail
alpha: 1
unnamed-GtkImageAccessible-2
"icon"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 0
name: Information
state: enabled sensitive showing visible
<AtkImage>
image size: 48 x 48
image description: (null)
- unnamed-GailContainer-3
+ unnamed-GtkBoxAccessible-3
"filler"
- parent: unnamed-GailContainer-1
+ parent: unnamed-GtkBoxAccessible-1
index: 1
state: enabled sensitive showing vertical visible
toolkit: gail
alpha: 1
Information
"label"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 0
name: Information
state: enabled focusable multi-line sensitive showing visible
wrap-mode: word
More Information
"label"
- parent: unnamed-GailContainer-3
+ parent: unnamed-GtkBoxAccessible-3
index: 1
name: More Information
state: enabled focusable multi-line sensitive showing visible
variant: <omitted>
weight: <omitted>
wrap-mode: word
- unnamed-GailContainer-4
+ unnamed-GtkBoxAccessible-4
"filler"
- parent: unnamed-GailContainer-0
+ parent: unnamed-GtkBoxAccessible-0
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gail
layer: window
alpha: 1
box1
- "panel"
+ "filler"
parent: window1
index: 0
state: enabled sensitive showing vertical visible